package router

import (
	"blog/conf"
	"github.com/labstack/echo/v4"
	"github.com/zxysilent/logs"
)

// RunApp 入口
func RunApp() {
	engine := echo.New()              // 实例化echo
	engine.Use(midRecover, midLogger) // 恢复 日志记录
	//engine.Use(middleware.CORSWithConfig(crosConfig)) // 跨域设置
	engine.HideBanner = true                      // 不显示横幅
	engine.HTTPErrorHandler = HTTPErrorHandler    // 自定义错误处理
	RegDocs(engine)                               // 注册文档
	engine.Static("/dist", "dist")                // 静态目录 - 后端专用
	engine.Static("/static", "static")            // 静态目录
	engine.File("/favicon.ico", "favicon.ico")    // ico
	engine.File("/dashboard*", "dist/index.html") // 前后端分离页面
	// 后台登录
	engine.GET("/login.html", func(ctx echo.Context) error {
		// 302 临时重定向
		return ctx.Redirect(302, "/dashboard/")
	})
	api := engine.Group("/api") // api/
	apiRouter(api)
	err := engine.Start(conf.AppConf.Server.Addr)
	if err != nil {
		logs.Fatal("run error :", err.Error())
	}
}
